#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - I2C_CTRL is the I2C control register, used to enable I2C peripheral and mask interrupts."]
    pub i2c_ctrl: crate::Reg<i2c_ctrl::I2C_CTRL_SPEC>,
    #[doc = "0x04 - I2C_COM is the I2C command register. It is used to configure the commands for the working of the I2C module."]
    pub i2c_com: crate::Reg<i2c_com::I2C_COM_SPEC>,
    #[doc = "0x08 - I2C_ICR is the I2C interrupt clear register."]
    pub i2c_icr: crate::Reg<i2c_icr::I2C_ICR_SPEC>,
    #[doc = "0x0c - I2C_SR is the I2C module status register. It is used to read the operating status of the I2C module."]
    pub i2c_sr: crate::Reg<i2c_sr::I2C_SR_SPEC>,
    #[doc = "0x10 - I2C_SCL_H is the I2C SCL high-level cycle count register. It is used to configure the number of SCL high-level cycles when the I2C module is working."]
    pub i2c_scl_h: crate::Reg<i2c_scl_h::I2C_SCL_H_SPEC>,
    #[doc = "0x14 - I2C_SCL_L is the I2C SCL low-level cycle count register. It is used to configure the number of SCL low-level cycles when the I2C module is working."]
    pub i2c_scl_l: crate::Reg<i2c_scl_l::I2C_SCL_L_SPEC>,
    #[doc = "0x18 - I2C_TXR is the I2C TX data register. It is used to configure the data to be transmitted when the I2C module is working."]
    pub i2c_txr: crate::Reg<i2c_txr::I2C_TXR_SPEC>,
    #[doc = "0x1c - I2C_RXR is the I2C RX data register. It is used for the master to receive data from the slave."]
    pub i2c_rxr: crate::Reg<i2c_rxr::I2C_RXR_SPEC>,
    #[doc = "0x20 - I2C_FIFOSTATUS is the fifo status register."]
    pub i2c_fifostatus: crate::Reg<i2c_fifostatus::I2C_FIFOSTATUS_SPEC>,
    #[doc = "0x24 - I2C_TXCOUNT is the register for transmit FIFO data count."]
    pub i2c_txcount: crate::Reg<i2c_txcount::I2C_TXCOUNT_SPEC>,
    #[doc = "0x28 - I2C_RXCOUNT is the register for receive FIFO data count."]
    pub i2c_rxcount: crate::Reg<i2c_rxcount::I2C_RXCOUNT_SPEC>,
    #[doc = "0x2c - I2C_RXTIDE is the register for receive FIFO overflow limit."]
    pub i2c_rxtide: crate::Reg<i2c_rxtide::I2C_RXTIDE_SPEC>,
    #[doc = "0x30 - I2C_TXTIDE is the register for transmit FIFO overflow limit. When character count in transmit FIFO <= txtide, will trigger FIFO overflow interrupt."]
    pub i2c_txtide: crate::Reg<i2c_txtide::I2C_TXTIDE_SPEC>,
}
#[doc = "I2C_CTRL register accessor: an alias for `Reg<I2C_CTRL_SPEC>`"]
pub type I2C_CTRL = crate::Reg<i2c_ctrl::I2C_CTRL_SPEC>;
#[doc = "I2C_CTRL is the I2C control register, used to enable I2C peripheral and mask interrupts."]
pub mod i2c_ctrl;
#[doc = "I2C_COM register accessor: an alias for `Reg<I2C_COM_SPEC>`"]
pub type I2C_COM = crate::Reg<i2c_com::I2C_COM_SPEC>;
#[doc = "I2C_COM is the I2C command register. It is used to configure the commands for the working of the I2C module."]
pub mod i2c_com;
#[doc = "I2C_ICR register accessor: an alias for `Reg<I2C_ICR_SPEC>`"]
pub type I2C_ICR = crate::Reg<i2c_icr::I2C_ICR_SPEC>;
#[doc = "I2C_ICR is the I2C interrupt clear register."]
pub mod i2c_icr;
#[doc = "I2C_SR register accessor: an alias for `Reg<I2C_SR_SPEC>`"]
pub type I2C_SR = crate::Reg<i2c_sr::I2C_SR_SPEC>;
#[doc = "I2C_SR is the I2C module status register. It is used to read the operating status of the I2C module."]
pub mod i2c_sr;
#[doc = "I2C_SCL_H register accessor: an alias for `Reg<I2C_SCL_H_SPEC>`"]
pub type I2C_SCL_H = crate::Reg<i2c_scl_h::I2C_SCL_H_SPEC>;
#[doc = "I2C_SCL_H is the I2C SCL high-level cycle count register. It is used to configure the number of SCL high-level cycles when the I2C module is working."]
pub mod i2c_scl_h;
#[doc = "I2C_SCL_L register accessor: an alias for `Reg<I2C_SCL_L_SPEC>`"]
pub type I2C_SCL_L = crate::Reg<i2c_scl_l::I2C_SCL_L_SPEC>;
#[doc = "I2C_SCL_L is the I2C SCL low-level cycle count register. It is used to configure the number of SCL low-level cycles when the I2C module is working."]
pub mod i2c_scl_l;
#[doc = "I2C_TXR register accessor: an alias for `Reg<I2C_TXR_SPEC>`"]
pub type I2C_TXR = crate::Reg<i2c_txr::I2C_TXR_SPEC>;
#[doc = "I2C_TXR is the I2C TX data register. It is used to configure the data to be transmitted when the I2C module is working."]
pub mod i2c_txr;
#[doc = "I2C_RXR register accessor: an alias for `Reg<I2C_RXR_SPEC>`"]
pub type I2C_RXR = crate::Reg<i2c_rxr::I2C_RXR_SPEC>;
#[doc = "I2C_RXR is the I2C RX data register. It is used for the master to receive data from the slave."]
pub mod i2c_rxr;
#[doc = "I2C_FIFOSTATUS register accessor: an alias for `Reg<I2C_FIFOSTATUS_SPEC>`"]
pub type I2C_FIFOSTATUS = crate::Reg<i2c_fifostatus::I2C_FIFOSTATUS_SPEC>;
#[doc = "I2C_FIFOSTATUS is the fifo status register."]
pub mod i2c_fifostatus;
#[doc = "I2C_TXCOUNT register accessor: an alias for `Reg<I2C_TXCOUNT_SPEC>`"]
pub type I2C_TXCOUNT = crate::Reg<i2c_txcount::I2C_TXCOUNT_SPEC>;
#[doc = "I2C_TXCOUNT is the register for transmit FIFO data count."]
pub mod i2c_txcount;
#[doc = "I2C_RXCOUNT register accessor: an alias for `Reg<I2C_RXCOUNT_SPEC>`"]
pub type I2C_RXCOUNT = crate::Reg<i2c_rxcount::I2C_RXCOUNT_SPEC>;
#[doc = "I2C_RXCOUNT is the register for receive FIFO data count."]
pub mod i2c_rxcount;
#[doc = "I2C_RXTIDE register accessor: an alias for `Reg<I2C_RXTIDE_SPEC>`"]
pub type I2C_RXTIDE = crate::Reg<i2c_rxtide::I2C_RXTIDE_SPEC>;
#[doc = "I2C_RXTIDE is the register for receive FIFO overflow limit."]
pub mod i2c_rxtide;
#[doc = "I2C_TXTIDE register accessor: an alias for `Reg<I2C_TXTIDE_SPEC>`"]
pub type I2C_TXTIDE = crate::Reg<i2c_txtide::I2C_TXTIDE_SPEC>;
#[doc = "I2C_TXTIDE is the register for transmit FIFO overflow limit. When character count in transmit FIFO <= txtide, will trigger FIFO overflow interrupt."]
pub mod i2c_txtide;
